|
Technical Q&AJava 10 - Font プロパティのカスタマイズ(1999 年 5 月 17 日)
Q:
ほかのプラットフォームでは、カテゴリが異なるオブジェクトに対して使用するフォントを判断するときに、font.properties
ファイルを Java
から利用することができます。しかし、Macではこのファイルが見当たりません。アプリケーションのフォントのプロパティを変更する方法を教えてください。 A: MRJ では、いくつかの理由により font.properties を使う方法が採用されていません。しかし、フォントの使い方をカスタマイズする方法はほかにもいくつかあります。どの方法が使えるかは、アプリケーションでフォントをどのように利用しているかによって異なります。 フォントを念頭に置いてアプリケーションを設計する場合、カスタマイズを可能にする最も簡単で柔軟な方法は、プラットフォームに固有のリソースバンドルやシステムプロパティをもとに、すべてのフォントを明示的に設定することです。システムプロパティからフォントを取得する方法については、『Chan & Lee The Java Class Libraries Vol. 2』 (Patric Chan、Rosanna Lee著) の「java.awt.Font.getFont」を参照してください。MRJ で独自のシステムプロパティを設定するには、MRJ SDK に含まれている JBindery のプロパティパネルを使います。 たとえば、appname.component.font プロパティを arial-bold-9 に設定し、コンポーネントのコードが次のようになっているとします。
この場合、コンポーネントのフォントは、9 ポイントのボールドの Arial に設定されます。フォントの設定はコンテナからコンポーネントに継承されます。これを利用すると、フォントを設定する箇所を最小限に抑えることができます。 アプリケーションが最初からフォントのカスタマイズをサポートするようには設計されていない場合、次のいずれかを行う必要があります。
1つのフォントを、別のフォントまたは論理フォントにマッピングすることができます。以下のうち、最初の例では
Arial フォントを論理フォント Application
にマッピングしています。2番目の例では、Times
フォントの代わりに Courier
フォントを使うようにマッピングしています。
これら3つの例では、実際にインストールされているフォント名 (Courier など) または論理フォント名をプロパティに設定することができます。プラットフォーム間で共通の論理フォント名には、Serif、SansSerif、Monospaced、Dialog、DialogInput などがあります。また、System、Application、SmallSystem の3つは、MRJに固有の論理フォント名です。これらのフォントは、Mac OSのアピアランスマネージャの設定に依存します。明示的なフォント名とは違い、すべての論理フォント名では大文字と小文字が区別されます。 Swing を使っている場合は、Swing のフォントに対してシステムプロパティの異なるセットが使われることに注意してください。それらのフォントの少なくとも一部は、起動時に設定されていなければ、MRJ によって MRJ のフォント設定で代用されます。このプロパティのセットによってフォント名、スタイル、サイズが設定されます。 たとえば、次のような例をはじめ、さまざまなプロパティがあります。
Swing には設定可能なプロパティがほかにもあります。詳しくは Swing のドキュメントを参照してください。 |
Technical Q&As | Contents
Previous Question | Next
Question
To contact us, please use the Contact
Us page.